package com.rightsidetech.system.service;

import com.github.pagehelper.PageInfo;
import com.rightsidetech.commom.base.DelReq;
import com.rightsidetech.commom.base.ResponseData;
import com.rightsidetech.commom.dto.response.AdminHomeTopResp;
import com.rightsidetech.commom.dto.response.AgentHomeTopResp;
import com.rightsidetech.commom.service.IService;
import com.rightsidetech.system.dtos.request.SysUpdateStatusReq;
import com.rightsidetech.system.dtos.request.UpdateImageReq;
import com.rightsidetech.system.dtos.request.UpdatePhoneNoReq;
import com.rightsidetech.system.dtos.request.agent.SysAgentInfoAddReq;
import com.rightsidetech.system.dtos.request.agent.SysAgentInfoReq;
import com.rightsidetech.system.dtos.request.agent.SysAgentInfoUpdateReq;
import com.rightsidetech.system.dtos.response.agent.AgentAppInfoResp;
import com.rightsidetech.system.dtos.response.agent.SysAgentInfoResp;
import com.rightsidetech.system.dtos.response.agent.SysDropDownNameResp;
import com.rightsidetech.system.entity.SysAgentInfo;
import com.rightsidetech.system.entity.SysAgentLoginHistory;
import com.rightsidetech.system.entity.SysAgentLoginInfo;

import java.util.List;

/**
 * @Author: yhr
 * @Date: 2021-10-25 14:14
 */
public interface SysAgentInfoService extends IService<SysAgentInfoResp,Long> {
    ResponseData<PageInfo<SysAgentInfoResp>> page(SysAgentInfoReq req,Long loginInfoId);

    ResponseData saveAgentInfo(SysAgentInfoAddReq req, Long loginInfoId) throws Exception;

    ResponseData updateAgentInfo(SysAgentInfoUpdateReq req, Long loginInfoId);

    ResponseData delAgentInfo(DelReq req);

    ResponseData updateAgentInfoStatus(SysUpdateStatusReq req);

    ResponseData<List<SysDropDownNameResp>> selectList(Long loginInfoId);

    Long sysUsercheckToken(String token);

    Long findAgentInfoIdByToken(String token);

    Long findAgentInfoId(Long loginInfoId);

    ResponseData<AgentAppInfoResp> agentInfo(Long loginInfoId);

    ResponseData updateHeadImg(UpdateImageReq req,Long loginId);

    ResponseData updatePhone(UpdatePhoneNoReq req, Long loginId);

    SysAgentLoginInfo selectInfoById(Long loginId);

    AdminHomeTopResp sysUserStatis(Long areaId);

    SysAgentInfo selectSysAgentInfo(Long agentId);

    AgentHomeTopResp sysStoreStatisByAgentId(Long agentInfoId);

    SysAgentLoginHistory selectHistory(Long agentLoginId);

    List<Long> selectAllAgnetId();

    SysAgentInfo findAgentInfoById(Long agentId);

    int countStatus(Long agentInfoId);

    List<Long> findAgentIdsByAreaIds(List<Long> agentIds);

    SysAgentLoginInfo selectByLoginInfo(Long loginInfoId);
}
